56d09ef2e73c04256427738c28b2b9100707b64d,src/com/landawn/abacus/util/N.java,N,forEach,#C#number#number#R#IndexedBiFunction#BiPredicate#,21840
Before Change
for (int i = fromIndex; i < toIndex; i++) {
result = accumulator.apply(result, i, list.get(i), c);
if (predicate.test(list.get(i), result) == false) {
break;
}
}
} else {
for (int i = fromIndex; i > toIndex; i--) {
result = accumulator.apply(result, i, list.get(i), c);
if (predicate.test(list.get(i), result) == false) {
break;
}
}
}
} else {
final Iterator<? extends T> iter = c.iterator();
int idx = 0;
if (fromIndex < toIndex) {
while (idx < fromIndex && iter.hasNext()) {
iter.next();
idx++;
}
T next = null;
while (iter.hasNext()) {
next = iter.next();
result = accumulator.apply(result, idx, iter.next(), c);
if (predicate.test(next, result) == false) {
break;
}
if (++idx >= toIndex) {
break;
}
}
} else {
while (idx <= toIndex && iter.hasNext()) {
iter.next();
idx++;
}
final T[] a = (T[]) new Object[fromIndex - toIndex];
while (iter.hasNext()) {
a[idx - 1 - toIndex] = iter.next();
if (idx++ >= fromIndex) {
break;
}
}
for (int i = a.length - 1; i >= 0; i--) {
result = accumulator.apply(result, i + toIndex + 1, a[i], c);
if (predicate.test(a[i], result) == false) {
break;
}
}
After Change
for (int i = fromIndex; i < toIndex; i++) {
result = accumulator.apply(result, i, list.get(i), c);
if (conditionToBreak.test(list.get(i), result)) {
break;
}
}
} else {
for (int i = fromIndex; i > toIndex; i--) {
result = accumulator.apply(result, i, list.get(i), c);
if (conditionToBreak.test(list.get(i), result)) {
break;
}
}
}
} else {
final Iterator<? extends T> iter = c.iterator();
int idx = 0;
if (fromIndex < toIndex) {
while (idx < fromIndex && iter.hasNext()) {
iter.next();
idx++;
}
T next = null;
while (iter.hasNext()) {
next = iter.next();
result = accumulator.apply(result, idx, iter.next(), c);
if (conditionToBreak.test(next, result)) {
break;
}
if (++idx >= toIndex) {
break;
}
}
} else {
while (idx <= toIndex && iter.hasNext()) {
iter.next();
idx++;
}
final T[] a = (T[]) new Object[fromIndex - toIndex];
while (iter.hasNext()) {
a[idx - 1 - toIndex] = iter.next();
if (idx++ >= fromIndex) {
break;
}
}
for (int i = a.length - 1; i >= 0; i--) {
result = accumulator.apply(result, i + toIndex + 1, a[i], c);
if (conditionToBreak.test(a[i], result)) {
break;
}
}